package com.yl.nettylearning.day03;

import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

/**
 * @author yangl
 */
public class NIOClient {
    public static void main(String[] args) throws Exception{
        //得到一个网络通道
        SocketChannel socketChannel = SocketChannel.open();
        //设置非阻塞模式
        socketChannel.configureBlocking(false);
        //提供服务器端的IP和端口
        InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 666);
        //连接服务器
        if(!socketChannel.connect(inetSocketAddress)){
            //如果连接失败
            while (!socketChannel.finishConnect()){
                System.out.println("因为客户端连接需要时间，客户端不会阻塞，可以去做其他工作。。。");
            }
        }
        //如果连接成功，发送数据
        String str = "hello server";
        //创建一个buffer，根据字节数组的大小，创建一个buffer，并且放入buffer，包裹一个字节数组到buffer中
        ByteBuffer wrap = ByteBuffer.wrap(str.getBytes());
        //发送数据，将buffer数据写入channel
        socketChannel.write(wrap);
        System.in.read();
    }
}
